System Configuration

# 2 System Configuration

## 2.1 CPU Block Diagram

## 2.2 Complete Block Diagram

## 2.3 Memory Configuration and Access Width

Memory Type | Bus Width | DMA | CPU
Read Width | Write Width | Read Width | Write Width
OAM | 32 | 16/32 | 16/32 | 16/32 | 16/32
Palette RAM | 16 | 16/32 | 16/32 | 16/32 | 16/32
VRAM | 16 | 16/32 | 16/32 | 16/32 | 16/32
CPU Internal Working RAM | 32 | 16/32 | 16/32 | 8/16/32 | 8/16/32
CPU External Working RAM | 16 | 16/32 | 16/32 | 8/16/32 | 8/16/32
Internal registers | 32 | 16/32 | 16/32 | 8/16/32 | 8/16/32
Game Pak ROM (Mask ROM, Flash Memory) | 16 | 16/32 | 16/32 | 8/16/32 | 16/32
Game Pak RAM (SRAM, Flash Memory) | 8 | -- | -- | 8 | 8

Good execution efficiency is obtained when programs that operate from the Game Pak use 16-bit instructions (16-bit compiler), and those that operate from CPU Internal Working RAM use 32-bit instructions (32-bit compiler).

## 2.4 Little-Endian

In the AGB CPU, memory addresses are allocated in 8-bit increments, and little-endian format is used in implementing the 8-, 16-, and 32-bit access widths.